import hashlib


def md5_hash(input_string):
    # 创建一个 md5 对象
    md5 = hashlib.md5()
    # 更新 md5 对象的内容（需要将字符串编码为字节）
    md5.update(input_string.encode('utf-8'))
    # 获取 MD5 哈希值的十六进制表示
    return md5.hexdigest().upper()


def getSign(data, result, secret):
    dd = data | result;
    sorted_keys = sorted(dd.keys(), key=lambda x: [ord(c) for c in x])
    # 构建新的字典
    sorted_dict = {key: dd[key] for key in sorted_keys}
    sorted_dictstr = ''.join(f'{key}{value}' for key, value in sorted_dict.items())
    sign = md5_hash(secret + sorted_dictstr + secret);
    return sign;